# Title: Numero maximo de una lista						Filename: max.s
# Author: Rosales Pienda Angel             					Date: 30 / Mar / 2017
# Description: Numero max
# Input: -
# Output: Maximo

@ r1 - UTILIANDO PARA MANTENER LA DIRECION DE LOS ELEMETNOS
@ r0 - UTILIANDO PARA LOS DATOS GRANDES
@ r3 - UTILIANDO PARA EL NUMERO ACTUAL

######## CODE SEGMENT #############################################################
.section  .data

numbers:    @ the data we are going to use.
.long 3,67,34,222,45,75,54,34,44,33,22,11,66,0

.globl _start

_start:
ldr %r1, =numbers @ PONER R1 PARA INICIAR LA DIRECCION DE  LOSNUM
ldr %r3, [%r1]    @ CARGA r3 CON EL PRIMER NUMERO
mov %r0, %r3    @ AL EMPEZAR LA COMCURRENCIA DEL NUMERO DEBERIA DE SER EL MAYOR@

loop:
  cmp %r3, $0   @ REVISA SI r3  ESPERA ZERO (FIN DE LA LISTA)
  beq exit    @ SI NO , SALIDA
  ldr %r3, [%r1,#4]!  @ CARGA EL SIGUIENTE ELEMENTO EN r3
  cmp %r3, %r0    @ COMPARA r0 Y r3
  ble loop    @ IR A START DE LOOP Y SI r3 <= r0
  mov %r0, %r3    @ OTRO ELEMENTO SE PONE EN r3 into r0
  bal loop    @ IR AL INICIO DE LOOP
######### DATA SEGMENT ###########################################################
exit:     @ EL VALOR MAS LARGO ESTA EN r0 
mov %r7, $1   @ PREPARA LA SALIDA
svc $0      @ DESPIERTA EL KERNEL
.end      @ MARCA EL FINAL DEL CODIGO